// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
  compatibilityDate: '2025-07-15',
  
  // 应用配置
  app: {
    head: {
      title: 'IMBoy Admin System',
      meta: [
        { charset: 'utf-8' },
        { name: 'viewport', content: 'width=device-width, initial-scale=1' },
        { name: 'description', content: 'IMBoy 管理后台系统' }
      ],
      link: [
        { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
      ]
    }
  },

  // 页面目录配置
  pages: true,

  // 运行时配置
  runtimeConfig: {
    public: {
      apiBaseUrl: process.env.API_BASE_URL || 'http://localhost:9806'
    }
  },

  // CSS 配置 - 在 app.vue 中直接导入

  // 模块配置
  modules: ['@pinia/nuxt', '@element-plus/nuxt', '@nuxtjs/i18n'],

  // i18n 配置
  i18n: {
    vueI18n: './i18n.config.ts',
    strategy: 'no_prefix',
    detectBrowserLanguage: false
  },

  // Element Plus 配置
  elementPlus: {
    importStyle: 'css'
  },

  // Pinia 配置
  // pinia: {
  //   autoImports: ['defineStore']
  // },

  // Vite 配置
  vite: {
    optimizeDeps: {
      force: true,
      exclude: ['oxc-parser'] // 排除 oxc-parser 以避免预构建问题
    },
    define: {
      global: 'globalThis',
      'process.env': {}
    },
    plugins: [
      (async () => {
        const { default: viteTsconfigPaths } = await import('vite-tsconfig-paths')
        return viteTsconfigPaths({
          projects: ['./tsconfig.json'],
          ignoreConfigErrors: true
        })
      })()
    ],
    resolve: {
      alias: {
        // 移除 crypto 别名，使用浏览器原生的 Web Crypto API
        '~': '.', // 添加 ~ 别名指向项目根目录
        '@': '.', // 添加 @ 别名指向项目根目录
        '~/assets': './assets', // 添加 ~/assets 别名
        '~/assets/css': './assets/css', // 添加 ~/assets/css 别名
        '~/stores': './stores', // 添加 ~/stores 别名
        '~/utils': './utils', // 添加 ~/utils 别名
        '~/pages': './pages', // 添加 ~/pages 别名
        '~/layouts': './layouts', // 添加 ~/layouts 别名
        '@/utils': './utils', // 添加 @/utils 别名
        '@/stores': './stores', // 添加 @/stores 别名
        '@/assets': './assets', // 添加 @/assets 别名
        '@/pages': './pages', // 添加 @/pages 别名
        '@/layouts': './layouts' // 添加 @/layouts 别名
      }
    },
    // 移除 vite-tsconfig-paths 插件，只使用 Vite 的别名配置
    // 修复 crypto.hash 问题
    server: {
      hmr: {
        overlay: false
      },
      // 添加代理配置，用于开发环境
      proxy: {
        '/adm': {
          target: 'http://localhost:9806',
          changeOrigin: true,
          secure: false
        }
      }
    },
    // 兼容性配置
    esbuild: {
      target: 'node20'
    }
  },

  // 构建配置
  build: {
    transpile: ['jsencrypt']
  },

  // 路由配置
  router: {
    options: {
      hashMode: false
    }
  },

  // 开发服务器配置
  devServer: {
    port: 3000,
    host: 'localhost'
  },

  // Nitro 配置
  nitro: {
    // 禁用一些可能导致问题的功能
    experimental: {
      wasm: false
    }
  },

  // 禁用 devtools
  devtools: {
    enabled: false
  }
})